package com.shujia.spark.sql

import org.apache.spark.sql.{DataFrame, SQLContext}
import org.apache.spark.{SparkConf, SparkContext}

object Demo1DF {
  def main(args: Array[String]): Unit = {

    val conf = new SparkConf().setMaster("local").setAppName("app")
    val sc = new SparkContext(conf)

    // spark  sql 上下文对象  spark sql的入口
    val sqlContext = new SQLContext(sc)

    //读取json文件创建df  ,json文件每一行必须是一个对象
    val df: DataFrame = sqlContext.read.json("spark/data/users.json")

    ///show相当于一个action算子    ,查看df一部分数据
    df.show()

    //打印列描述
    df.printSchema()

    //查询每一列
    df.select("name").show()

    //以列对象的方式选择,   在select里面可以像sql一样对数据进行处理
    df.select(df("name"), df("age") + 1 as "age").show()

    //过滤数据
    df.where("age > 21").show()
    df.where(df("age") >= 23).show()


    // select age,count(age) from user group by age
    df.groupBy("age").count().show()



  }
}
